相关文章

*   [VDPAU](/index.php/VDPAU_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "VDPAU (简体中文)")
*   [XvMC](/index.php/XvMC_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "XvMC (简体中文)")

**翻译状态：** 本文是英文页面 [VA-API](/index.php/VA-API "VA-API") 的[翻译](/index.php/ArchWiki_Translation_Team_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ArchWiki Translation Team (简体中文)")，最后翻译时间：2014-01-27，点击[这里](https://wiki.archlinux.org/index.php?title=VA-API&diff=0&oldid=294616)可以查看翻译后英文页面的改动。

Hardware video acceleration makes it possible for the video card to decode/encode video, thus offloading the CPU and saving power.

Linux 中有多种方式可以实现视频加速:

*   **[视频加速API (Video Acceleration API, 缩写为VA-API)](http://www.freedesktop.org/wiki/Software/vaapi)** 是一套提供视频硬件编解码的开源库和标准。
*   **[Unix视频解码及演示 API （Video Decode and Presentation API for Unix，缩写为VDPAU）](http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/)**是一个开源的库，它使得部分的视频解码和视频后期处理任务转移到GPU硬件上。

## Contents

*   [1 支持的硬件](#.E6.94.AF.E6.8C.81.E7.9A.84.E7.A1.AC.E4.BB.B6)
    *   [1.1 VA-API](#VA-API)
    *   [1.2 VDPAU](#VDPAU)
*   [2 支持的格式](#.E6.94.AF.E6.8C.81.E7.9A.84.E6.A0.BC.E5.BC.8F)
    *   [2.1 VA-API](#VA-API_2)
    *   [2.2 VDPAU](#VDPAU_2)
*   [3 配置](#.E9.85.8D.E7.BD.AE)
    *   [3.1 多显卡显示](#.E5.A4.9A.E6.98.BE.E5.8D.A1.E6.98.BE.E7.A4.BA)
*   [4 支持的软件](#.E6.94.AF.E6.8C.81.E7.9A.84.E8.BD.AF.E4.BB.B6)
    *   [4.1 开启软件的硬件加速](#.E5.BC.80.E5.90.AF.E8.BD.AF.E4.BB.B6.E7.9A.84.E7.A1.AC.E4.BB.B6.E5.8A.A0.E9.80.9F)
    *   [4.2 GStreamer](#GStreamer)
    *   [4.3 MPlayer](#MPlayer)
    *   [4.4 VLC media player](#VLC_media_player)

## 支持的硬件

### VA-API

**开源驱动:**

*   [AMD](/index.php/ATI_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ATI (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libva-vdpau-driver](https://www.archlinux.org/packages/?name=libva-vdpau-driver)和[mesa](https://www.archlinux.org/packages/?name=mesa)两者为 Radeon 9500 或更新的GPU提供支持。

*   [Intel](/index.php/Intel_graphics_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Intel graphics (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libva-intel-driver](https://www.archlinux.org/packages/?name=libva-intel-driver)软件包为 GMA 4500 系列或者更新的GPU提供支持。

*   [NVIDIA](/index.php/Nouveau_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Nouveau (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libva-vdpau-driver](https://www.archlinux.org/packages/?name=libva-vdpau-driver)和[mesa](https://www.archlinux.org/packages/?name=mesa)两者为 GeForce 8 系列和更新的GPU提供支持。位于AUR的 [nouveau-fw](https://aur.archlinux.org/packages/nouveau-fw/) 软件包包含从NVIDIA闭源驱动中提取出的必要的固件文件。

**闭源驱动:**

*   [AMD](/index.php/AMD_Catalyst_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "AMD Catalyst (简体中文)"): 位于[AUR](/index.php/AUR_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "AUR (简体中文)")的[libva-xvba-driver](https://aur.archlinux.org/packages/libva-xvba-driver/)软件包为 Radeon HD 4000 系列或更新的GPU提供支持。在 Radeon HD 5000 系列或者更新的GPU上请使用 [catalyst-utils](https://aur.archlinux.org/packages/catalyst-utils/) 驱动；在 Radeon HD 4000 系列上使用 [catalyst-total-hd234k](https://aur.archlinux.org/packages/catalyst-total-hd234k/) 作为驱动程序。

*   [NVIDIA](/index.php/NVIDIA_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "NVIDIA (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libva-vdpau-driver](https://www.archlinux.org/packages/?name=libva-vdpau-driver)软件包和 [nvidia-utils](https://www.archlinux.org/packages/?name=nvidia-utils) 驱动为 GeForce 8 系列或更新的GPU提供支持。

### VDPAU

**开源驱动:**

*   [AMD](/index.php/ATI_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "ATI (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的 [mesa-vdpau](https://www.archlinux.org/packages/?name=mesa-vdpau) 软件包为 Radeon 9500 或更新的GPU提供支持。

*   [Intel](/index.php/Intel_graphics_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Intel graphics (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libvdpau-va-gl](https://www.archlinux.org/packages/?name=libvdpau-va-gl)和[libva-intel-driver](https://www.archlinux.org/packages/?name=libva-intel-driver)这两个软件包为 GMA 4500 系列或者更新的GPU提供支持。

*   [NVIDIA](/index.php/Nouveau_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Nouveau (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的 [mesa-vdpau](https://www.archlinux.org/packages/?name=mesa-vdpau) 软件包为 GeForce 8 系列和更新的GPU提供支持。位于AUR的 [nouveau-fw](https://aur.archlinux.org/packages/nouveau-fw/) 软件包包含从NVIDIA闭源驱动中提取出的必要的[固件](http://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware) 。

**闭源驱动:**

*   [AMD](/index.php/AMD_Catalyst_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "AMD Catalyst (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[libvdpau-va-gl](https://www.archlinux.org/packages/?name=libvdpau-va-gl)、位于[AUR](/index.php/AUR_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "AUR (简体中文)")的[libva-xvba-driver](https://aur.archlinux.org/packages/libva-xvba-driver/)软件包两者为 Radeon HD 4000 系列或更新的GPU提供支持。在 Radeon HD 5000 系列或者更新的GPU上请使用 [catalyst-utils](https://aur.archlinux.org/packages/catalyst-utils/) 驱动；在 Radeon HD 4000 系列上 使用 [catalyst-total-hd234k](https://aur.archlinux.org/packages/catalyst-total-hd234k/) 作为驱动程序。

*   [NVIDIA](/index.php/NVIDIA_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "NVIDIA (简体中文)"): 位于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")的[nvidia-utils](https://www.archlinux.org/packages/?name=nvidia-utils)软件包为 GeForce 400 系列或更新的GPU提供支持。
*   GeForce 8/9 和 GeForce 100-300 系列由 [nvidia-340xx-utils](https://www.archlinux.org/packages/?name=nvidia-340xx-utils) 软件包支持。

## 支持的格式

### VA-API

 Open source | Proprietary |
 AMD | Intel | Nvidia | AMD | Nvidia |
| MPEG2 解码 | AMD Radeon 9500 或更新 | Intel GMA 4500 或更新 | Nvidia GeForce 8 或更新 | AMD Radeon HD 4000 或更新 | Nvidia GeForce 8 或更新 |
| MPEG4 解码 | AMD Radeon HD 6000 或更新 | -- | Nvidia GeForce 200 或更新 | AMD Radeon HD 6000 或更新 | Nvidia GeForce 200 或更新 |
| H264 解码 | AMD Radeon HD 4000 或更新 | Intel GMA 4500, Ironlake Graphics 或更新 | Nvidia GeForce 8 或更新 | AMD Radeon HD 4000 或更新 | Nvidia GeForce 8 或更新 |
| VC1 解码 | AMD Radeon HD 4000 或更新 | Intel Sandy Bridge Graphics 或更新 | Nvidia GeForce 8200, 8300, 8400, 9300, 200 或更新 | AMD Radeon HD 4000 或更新 | Nvidia GeForce 8 或更新 |
| MPEG2 编码 | -- | Intel Ivy Bridge Graphics 或更新 | -- | -- | -- |
| H264 编码 | -- | Intel Sandy Bridge Graphics 或更新 | -- | -- | -- |

[libva-intel-driver-g45-h264](https://aur.archlinux.org/packages/libva-intel-driver-g45-h264/) 软件包为其提供支持。具体方法和注意事项参看： [在 GMA 4500 硬解 H.264](/index.php/Intel_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.9C.A8_GMA_4500_.E7.A1.AC.E8.A7.A3_H.264 "Intel (简体中文)")。

运行下面的命令以查看你的GPU支持哪些功能。这个命令由 [libva-utils](https://www.archlinux.org/packages/?name=libva-utils) 软件包提供:

 `$ vainfo` 

*VAEntrypointVLD* 表示你可以解码该格式，*VAEntrypointEncSlice* 表示你可以编码该格式。

### VDPAU

 开源 | 闭源 |
 AMD | Intel | Nvidia | AMD | Nvidia |
| MPEG2 decoding | Radeon 9500 and newer | 

<center>—</center>

 | GeForce 8 and newer | 

<center>—</center>

 | GeForce 8 and newer |
| MPEG4 decoding | Radeon HD 6000 and newer | 

<center>—</center>

 | GeForce 200 and newer | 

<center>—</center>

 | GeForce 200 and newer |
| H.264 decoding | Radeon HD 4000 and newer | GMA 4500, Ironlake Graphics and newer | GeForce 8 and newer | Radeon HD 4000 and newer | GeForce 8 and newer |
| HEVC (H.265) decoding | 

<center>—</center>

 | 

<center>—</center>

 | 

<center>—</center>

 | 

<center>—</center>

 | GeForce 900 and newer |
| VC1 decoding | Radeon HD 4000 and newer | 

<center>—</center>

 | GeForce 8 and newer | 

<center>—</center>

 | GeForce 8 and newer |

*   Supported by the [libva-intel-driver-g45-h264](https://aur.archlinux.org/packages/libva-intel-driver-g45-h264/) package. See [Intel graphics#H.264 decoding on GMA 4500](/index.php/Intel_graphics#H.264_decoding_on_GMA_4500 "Intel graphics") for instructions and caveats.
*   As of version 0.3, the VA GL driver doesn't support any other hardware decoder than H.264.
*   [Except](https://en.wikipedia.org/wiki/Nvidia_PureVideo "wikipedia:Nvidia PureVideo") GeForce 8800 Ultra, 8800 GTX, 8800 GTS (320/640 MB).
*   Except GeForce GTX 970 and GTX 980.

要检查一个功能是否被 GPU 支持，可以使用 [vdpauinfo](https://www.archlinux.org/packages/?name=vdpauinfo) 软件包提供的命令：

```
$ vdpauinfo

```

## 配置

环境变量 `VDPAU_DRIVER` 决定使用的驱动。可以[全局设置](/index.php/Environment_variables#Defining_variables "Environment variables") 或 [针对一个用户](/index.php/Environment_variables#Defining_variables "Environment variables") 设置 [环境变量](/index.php/Environment_variables "Environment variables")

正确的驱动程序名称取决于您的设置：

*   Intel 或 AMD Catalyst 使用 `va_gl`.
*   开源AMD/ATI驱动程序,您需要将它设置为适当的驱动程序版本取决于你的GPU。
*   Nvidia的专有版本将变量设置为“nvidia”。

 `$ grep -i vdpau /var/log/Xorg.0.log` 
```
(II) RADEON(0): [DRI2] VDPAU driver: r300

```

然后设置 VDPAU 驱动：

```
VDPAU_DRIVER=r300

```

### 多显卡显示

对混合显卡(NVIDIA和AMD)，需要设置下面环境变量。

```
$ export DRI_PRIME=1

```

更多信息，参阅 [PRIME](/index.php/PRIME "PRIME") wiki 页面。

## 支持的软件

### 开启软件的硬件加速

*   **Adobe Flash Player** — 见 [Browser plugins#Adobe Flash Player](/index.php/Browser_plugins#Adobe_Flash_Player "Browser plugins").

	|| [flashplugin](https://www.archlinux.org/packages/?name=flashplugin)

*   **[MPlayer](/index.php/MPlayer "MPlayer") 或 [mplayer2](http://www.mplayer2.org/)** — 见[MPlayer#Enabling VDPAU](/index.php/MPlayer#Enabling_VDPAU "MPlayer").

	|| [mplayer](https://www.archlinux.org/packages/?name=mplayer) [mplayer2](https://aur.archlinux.org/packages/mplayer2/)

*   **gnome-mplayer** — 开启硬件加速: *Edit > Preferences > Player*, 设置 Video Output 为 `vdpau`.

	|| [gnome-mplayer](https://www.archlinux.org/packages/?name=gnome-mplayer)

*   **[SMplayer](/index.php/SMplayer "SMplayer")** — 开启硬件加速: *Options > Preferences > General > Video*, 设置 Output driver 为 `vdpau`.

	|| [smplayer](https://www.archlinux.org/packages/?name=smplayer)

*   **bomi** — 硬件加速可以启用: *Preferences > Video > Hardware acceleration*.

	[https://bomi-player.github.io](https://bomi-player.github.io) || [bomi](https://aur.archlinux.org/packages/bomi/) [bomi-git](https://aur.archlinux.org/packages/bomi-git/)

*   **[Mpv](/index.php/Mpv "Mpv")** — 见 [Mpv#Hardware decoding](/index.php/Mpv#Hardware_decoding "Mpv").

	|| [mpv](https://www.archlinux.org/packages/?name=mpv)

*   **[VLC media player](/index.php/VLC_media_player "VLC media player")** — 见 [VLC media player#Hardware acceleration support](/index.php/VLC_media_player#Hardware_acceleration_support "VLC media player").

	|| [vlc](https://www.archlinux.org/packages/?name=vlc)

### [GStreamer](/index.php/GStreamer "GStreamer")

安装 [gstreamer-vaapi](https://www.archlinux.org/packages/?name=gstreamer-vaapi) 软件包，它存在于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")。

 `$ gst-launch-1.0 playbin uri=file://*/path/to/foobar.mpeg*` 

如果发现了支持的格式，VA-API会自动被使用。

基于GStreamer的播放器:

*   [totem](https://www.archlinux.org/packages/?name=totem): 不需要配置。

### [MPlayer](/index.php/MPlayer_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "MPlayer (简体中文)")

安装 [mplayer-vaapi](https://aur.archlinux.org/packages/mplayer-vaapi/) 软件包，它存在于[官方软件仓库](/index.php/Official_repositories_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) "Official repositories (简体中文)")。

 `$ mplayer -vo vaapi -va vaapi *foobar.mpeg*` 

*   **-vo** - 指定 vaapi 视频输出驱动
*   **-va** - 指定 vaapi 视频解码驱动

**注意:** 你也可以配合VDPAU后端使用 [mplayer2](https://aur.archlinux.org/packages/mplayer2/) 。详情参看 [MPlayer (简体中文)#启用 VDPAU （适用于新款nVidia显卡）](/index.php/MPlayer_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E5.90.AF.E7.94.A8_VDPAU_.EF.BC.88.E9.80.82.E7.94.A8.E4.BA.8E.E6.96.B0.E6.AC.BEnVidia.E6.98.BE.E5.8D.A1.EF.BC.89 "MPlayer (简体中文)")。

基于 MPlayer 的播放器:

*   [gnome-mplayer](https://www.archlinux.org/packages/?name=gnome-mplayer): 开启硬件加速的方法: *编辑 > 首选项 > 播放器*, 并设置*视频输出*为 `vaapi`。
*   [smplayer](https://www.archlinux.org/packages/?name=smplayer): 开启硬件加速的方法: *选项 > 首选项 > 常规 > 视频*, 并设置*输出驱动*为 `vaapi`。

### VLC media player

安装 [vlc](https://www.archlinux.org/packages/?name=vlc) 软件包，它位于官方软件仓库。

开启硬件加速的方法: *工具 > 首选项 > 输入 / 编解码器*, 然后设置 *硬件加速解码* 为 `视频加速 (VA) API`。